#include "../ebnn.h"
uint8_t l_conv_pool_bn_bst0_bconv_W[4] = {242,255,132,255};
float l_conv_pool_bn_bst0_bconv_b[2] = {0.0036910141,0.005829772};
float l_conv_pool_bn_bst0_bn_gamma[2] = {1.0003844,1.0007571};
float l_conv_pool_bn_bst0_bn_beta[2] = {-0.061328143,0.012253596};
float l_conv_pool_bn_bst0_bn_mean[2] = {0.39471143,-0.38759711};
float l_conv_pool_bn_bst0_bn_std[2] = {0.84309483,0.99606001};
void l_conv_pool_bn_bst0(float* input, uint8_t* output){
  fconv_layer(input, l_conv_pool_bn_bst0_bconv_W, output, l_conv_pool_bn_bst0_bconv_b, l_conv_pool_bn_bst0_bn_gamma, l_conv_pool_bn_bst0_bn_beta, l_conv_pool_bn_bst0_bn_mean, l_conv_pool_bn_bst0_bn_std, 1, 2, 28, 28, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1);
}

float l_b_linear_bn_softmax1_bl_b[10] = {0.0015731278,0.0011348516,-8.691386e-05,0.00019502325,0.0014512656,0.00064003374,6.7366869e-05,-0.00010249004,0.00059620145,0.0010772175};
uint8_t l_b_linear_bn_softmax1_bl_W[1960] = {163,72,200,185,224,64,0,178,218,0,16,101,31,2,70,198,208,4,189,8,80,224,21,89,14,128,175,104,20,15,255,136,150,127,148,172,99,251,14,230,45,156,11,218,15,201,155,132,61,87,80,5,200,191,0,248,158,240,11,212,86,0,79,84,248,16,92,158,13,198,134,156,238,80,27,251,60,204,247,168,184,110,88,74,135,31,101,226,17,26,165,208,0,0,35,32,0,133,186,114,84,177,87,159,253,115,255,255,193,251,215,62,29,203,73,243,127,91,175,0,104,197,118,106,163,191,252,109,5,115,94,244,7,94,214,229,51,217,127,2,253,231,248,199,251,255,35,253,63,242,187,165,127,7,244,155,195,99,129,240,117,33,247,200,211,161,181,141,178,147,255,199,81,210,160,235,85,148,31,0,43,123,183,9,43,95,255,235,152,119,245,79,43,223,254,83,242,249,76,217,240,4,12,188,5,0,29,1,254,120,218,221,197,134,74,91,116,95,1,15,15,148,2,96,253,68,8,0,36,29,1,254,25,209,10,8,156,224,147,3,131,24,82,56,14,215,35,140,128,176,104,112,72,7,159,211,216,217,28,3,143,6,70,41,225,18,248,14,12,4,8,241,5,163,30,232,54,164,4,163,143,239,237,190,60,75,230,32,0,12,85,2,3,1,26,42,190,134,240,127,253,21,254,255,215,237,28,207,146,184,3,176,159,222,75,127,255,197,126,207,167,247,231,232,49,240,107,194,235,116,244,116,54,161,198,82,184,120,98,223,39,207,47,90,120,240,177,143,143,221,214,88,243,243,207,13,223,255,185,210,231,217,15,173,73,162,81,111,51,237,203,246,117,12,15,69,194,169,42,24,149,243,191,127,170,31,250,191,31,255,247,175,248,2,130,170,154,0,14,143,247,224,135,199,255,1,37,22,218,8,238,217,170,75,253,253,164,147,191,48,128,237,229,129,80,91,161,188,2,98,87,32,79,167,252,146,119,55,0,3,99,32,19,96,55,0,32,7,58,61,104,115,249,126,15,167,27,86,115,208,252,191,39,221,253,242,239,70,254,143,176,13,101,238,193,254,45,64,7,228,133,80,39,66,80,1,211,15,175,31,47,254,63,90,207,255,244,186,80,63,137,64,2,95,83,2,46,142,224,41,8,34,169,60,239,38,69,112,26,137,141,167,136,100,4,97,79,148,148,70,255,252,131,255,195,200,123,254,124,207,208,175,135,236,12,192,66,33,24,12,76,0,128,138,40,16,14,68,136,4,240,128,0,8,55,240,19,250,63,160,31,39,232,32,246,251,177,183,254,223,238,93,192,127,166,124,0,141,104,255,196,130,147,137,19,6,1,148,49,67,64,4,127,255,162,1,103,252,131,143,173,178,3,255,241,0,191,207,122,27,176,31,103,60,0,113,210,40,22,171,26,67,117,211,169,127,16,80,31,56,231,11,255,240,97,1,218,79,224,135,196,107,0,31,15,248,23,48,123,0,238,15,237,47,32,254,211,232,27,248,196,193,231,125,24,23,255,204,61,143,122,86,142,241,0,231,184,199,0,75,137,192,9,34,110,139,182,128,54,189,40,226,239,150,6,150,216,0,1,51,166,2,39,94,16,55,185,136,17,198,62,193,248,23,142,31,129,234,143,240,191,166,215,0,187,85,192,81,98,128,16,91,69,78,2,252,46,218,47,128,111,75,240,22,236,191,128,60,139,192,1,17,255,0,3,221,232,12,1,252,0,17,175,140,1,95,17,232,14,190,46,39,87,194,74,32,1,126,129,0,39,96,0,0,15,194,0,10,26,161,121,225,94,2,236,6,212,159,253,12,1,188,47,96,35,132,156,16,248,86,48,127,12,225,167,28,46,56,240,17,101,229,89,11,127,186,193,215,207,232,95,215,190,212,189,31,63,207,198,195,40,136,121,9,244,3,128,244,32,30,231,216,129,226,5,21,255,96,107,13,210,222,67,34,32,98,0,0,102,128,0,0,117,190,253,231,223,255,249,159,255,255,249,191,145,167,46,58,19,81,0,62,161,17,157,250,67,72,255,127,119,175,250,120,75,252,223,87,7,31,123,252,114,103,191,71,157,54,160,113,3,185,39,130,110,145,20,75,160,0,39,252,128,2,186,88,248,215,7,231,182,153,127,252,254,128,251,249,96,133,215,194,120,120,205,1,127,151,98,240,255,239,248,194,255,253,27,127,255,203,79,124,234,138,243,160,192,68,120,128,78,196,6,255,197,212,2,117,39,136,63,194,24,55,246,9,19,255,64,112,7,252,154,128,31,255,232,1,249,79,192,135,13,93,128,2,43,240,0,54,127,64,8,23,68,200,32,40,88,224,65,1,72,160,2,136,128,112,3,52,135,208,143,200,60,150,186,194,208,25,248,69,75,125,16,69,237,124,36,132,37,253,54,69,64,0,192,99,14,18,136,76,134,17,255,252,6,126,251,174,217,225,239,99,234,8,195,14,0,93,185,56,5,118,32,32,249,33,64,1,192,2,208,62,16,191,9,192,5,236,115,2,221,254,56,7,126,232,145,6,180,160,91,107,38,55,28,187,73,169,131,96,61,1,58,73,54,39,108,17,222,239,0,40,14,242,3,50,200,244,8,0,23,192,206,113,237,95,97,75,119,248,183,223,255,230,173,254,253,171,255,255,255,153,167,255,76,24,95,123,102,55,247,225,252,5,208,201,64,0,46,206,2,8,166,89,0,29,26,128,0,232,244,0,65,41,216,156,78,232,3,198,212,97,94,198,243,231,167,58,157,118,5,252,99,196,14,175,212,230,252,87,172,147,255,112,64,255,125,7,207,255,149,153,127,212,70,32,54,140,95,8,163,75,251,130,49,171,251,183,72,127,175,178,70,0,1,127,90,16,5,170,64,0,8,227,96,35,207,111,198,180,239,255,188,162,191,253,121,110,74,220,183,188,235,243,35,223,183,141,243,253,112,199,31,65,149,66,128,62,175,96,1,217,196,14,25,212,194,11,239,204,224,243,54,28,127,223,17,133,55,228,32,174,26,4,103,168,176,1,111,174,192,164,152,93,221,14,162,251,43,142,2,54,5,112,64,192,170,52,21,200,193,88,145,6,186,63,111,214,127,255,198,36,118,250,3,1,50,164,92,195,108,243,252,47,127,219,208,26,237,126,61,10,119,175,216,191,27,239,11,61,94,13,253,66,113,15,168,6,194,244,20,88,175,0,6,48,96,131,60,232,96,15,74,106,208,197,22,132,112,86,161,86,168,57,104,160,49,200,101,10,201,136,232,119,20,156,68,28,246,252,1,31,255,240,32,255,189,242,68,57,186,137,55,73,24,44,80,0,18,249,98,19,20,183,98,12,122,254,242,225,19,250,244,32,32,155,89,160,18,121,166,8,126,128,0,0,80,100,48,203,9,127,201,16,43,249,5,0,127,136,152,95,211,14,85,254,2,118,222,180,212,235,124,179,61,167,230,122,2,179,216,164,250,89,209,98,221,23,159,187,223,239,255,189,253,210,5,169,119,160,69,7,154,128,1,12,15,203,245,27,71,255,236,123,240,1,228,227,92,163,43,14,219,142,108,206,64,65,147,242,19,105,191,204,17,149,215,77,255,99,190,184,254,93,221,63,229,254,99,255,127,241,199,254,239,8,127,227,52,3,90,4,240,31,128,224,181,252,114,194,122,100,253,15,201,17,194,252,40,129,87,155,161,129,243,139,26,247,248,103,224,47,223,144,56,231,241,145,0,150,208,0,146,116,158,196,176,211,194,16,16,242,135,184,42,0,95,189,127,120,130,234,219,178,9,213,200,222,118,150,208,3,12,111,254,16,184,126,4,20,96,196,6,0,30,35,224,128,0,210,143,2,204,20,240,191,234,126,11,149,171,224,54,176,252,13,227,247,128,41,123,0,118,55,186,95,254,63,237,253,42,221,160,73,239,204,0,78,189,128,13,107,248,65,85,31,255,137,113,254,192,118,135,219,40,54,123,137,16,63,184,99,137,127,0,30,119,32,0,207,77,254,102,83,88,254,8,12,63,64,12,103,248,0,5,252,80,6,47,118,143,135,0,176,41,113,127,75,223,15,241,63,235,219,129,255,254,7,189,246,226,29,145,134,19,58,86,37,45,64,180,210,147,65,30,183,155,63,150,174,128,1,150,96,32,236,89,49,51,242,0,23,252,203,255,255,152,223,127,226,84,252,245,230,247,171,251,54,40,90,90,224,11,162,228,138,255,211,21,32,127,71,248,31,221,118,128,223,247,224,55,255,217,138,47,114,110,194,127,240,97,7,248,70,72,63,136,153,255,240,16,15,221,16,91,254,76,7,63,68,224,223,246,252,158,191,159,154,190,187,83,189,229,247,222,195,137,37,173,220,118,53,250,131,64,119,160,95,136,184,1,132,0,64,127,152,0,37};
float l_b_linear_bn_softmax1_bn_gamma[10] = {1.0009999,1.0010159,1.0010047,1.0009718,1.0010267,1.0010388,1.0010755,1.0010628,1.0009437,1.001018};
float l_b_linear_bn_softmax1_bn_beta[10] = {-0.018699635,0.0072967391,0.013675919,0.033730317,-0.016850585,-0.014363914,-0.03497998,0.010835699,0.00835976,0.0078015267};
float l_b_linear_bn_softmax1_bn_mean[10] = {208.85899,186.85066,-4.7744455,-26.191326,209.70303,67.183121,-53.69236,-63.630692,37.56987,81.884613};
float l_b_linear_bn_softmax1_bn_std[10] = {62.687672,68.038681,63.31142,65.007751,54.911938,46.456116,59.427055,60.494011,53.431396,53.293175};
void l_b_linear_bn_softmax1(uint8_t* input, uint8_t* output){
  blinear_layer(input, l_b_linear_bn_softmax1_bl_W, output, l_b_linear_bn_softmax1_bl_b, l_b_linear_bn_softmax1_bn_gamma, l_b_linear_bn_softmax1_bn_beta, l_b_linear_bn_softmax1_bn_mean, l_b_linear_bn_softmax1_bn_std, 1, 1568, 10);
}


uint8_t temp1[196] = {0};
uint8_t temp2[196] = {0};
void ebnn_compute(float *input, uint8_t *output){
  l_conv_pool_bn_bst0(input, temp1);
  l_b_linear_bn_softmax1(temp1, output);
}
